package com.itheima.homeweek;

import java.io.*;

public class HomeWeek03 {//尝试用代码完成文件夹的复制
    public static void main(String[] args) throws IOException {
        File src = new File("D:\\demo");//父路径
        File desc = new File("day016");//子路径
        copyDir(src,desc);
    }

    private static void copyDir(File src,File desc) throws IOException {
        //在目的地创建文件夹
        desc = new File(desc,src.getName());//目的路径是否存在该文件夹
        if(!desc.exists()){
            desc.mkdirs();//不存在则创建
        }
        File[] files = src.listFiles();
        if(files != null){//所传文件夹存在
            for (File file : files) {
                if(file.isFile()){//当前为文件
                    copyFile(file,new File(desc,file.getName()));//如果为文件,目的路径则需拼接文件名
                }else{//,new File(desc,file.getName())
                    copyDir(file,desc);//文件夹则递归调用
                }
            }
        }
    }

    public static void copyFile(File src, File desc) throws IOException {//复制文件方法
        //字节输入流
        FileInputStream fis = new FileInputStream(src);
        //字节输出流
        FileOutputStream fos = new FileOutputStream(desc);
        //复制数据
        int len;
        byte[] bytes =new byte[1024];
        while((len = fis.read(bytes))!= -1){
            fos.write(bytes,0,len);
        }
        //释放资源
        fis.close();
        fos.close();
    }
}
